
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>FlexMetrics Metric Results</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta>
</head>

<body class="composite">
<div id="banner">


<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">Last Published: Fri Aug 20 15:17:58 CEST 2010</div>
<div class="xright"></div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn"><div id="navcolumn"><h5>Project Documentation</h5>
<ul>
  <li class="none">
    <strong>
      <a href="javancss.html">FlexMetrics report</a>
    </strong>
  </li>
</ul><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
<img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
</a>
</div></div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section"><h2>FlexMetrics Metric Results</h2><p><p>[ <a href="#package">package</a> ] [ <a href="#object">object</a> ] [ <a href="#method">method</a> ] [ <a href="#explanation">explanation</a> ]</p>The following document contains the results of a FlexMetrics metric analysis. <br /><a href="http://www.kclee.de/clemens/java/javancss/">JavaNCSS web site.</a></p></div><div class="section"><h2><a name="package">Packages</a></h2><p>[ <a href="#package">package</a> ] [ <a href="#object">object</a> ] [ <a href="#method">method</a> ] [ <a href="#explanation">explanation</a> ]</p><p><b>Packages sorted by NCSS.</b></p><table class="bodyTable"><tr class="a"><th>Package</th><th>Classes</th><th>Methods</th><th>NCSS</th></tr><tr class="b"><td>com.adobe.ac.pmd.view.model</td><td>4</td><td>28</td><td>86</td></tr><tr class="a"><td>com.adobe.ac.pmd.model</td><td>4</td><td>18</td><td>28</td></tr><tr class="b"><td>com.adobe.ac.pmd.view</td><td>6</td><td>4</td><td>14</td></tr><tr class="a"><td>.</td><td>2</td><td>0</td><td>1</td></tr></table><table class="bodyTable"><tr class="b"><th>Classes total</th><th>Methods total</th><th>NCSS total</th></tr><tr class="a"><td>16</td><td>50</td><td>129</td></tr></table></div><div class="section"><h2><a name="object">Objects</a></h2><p>[ <a href="#package">package</a> ] [ <a href="#object">object</a> ] [ <a href="#method">method</a> ] [ <a href="#explanation">explanation</a> ]</p><p><b>TOP 5 classes containing the most NCSS.</b></p><table class="bodyTable"><tr class="b"><th>Object</th><th>NCSS</th><th>Methods</th></tr><tr class="a"><td>com.adobe.ac.pmd.view.model.UploadModel</td><td>51</td><td>8</td></tr><tr class="b"><td>com.adobe.ac.pmd.view.model.ResultsModel</td><td>47</td><td>12</td></tr><tr class="a"><td>com.adobe.ac.pmd.view.model.ViolationsModel</td><td>28</td><td>7</td></tr><tr class="b"><td>com.adobe.ac.pmd.model.Violation</td><td>24</td><td>9</td></tr><tr class="a"><td>com.adobe.ac.pmd.model.File</td><td>13</td><td>3</td></tr></table><p><b>TOP 5 classes containing the most methods.</b></p><table class="bodyTable"><tr class="b"><th>Object</th><th>NCSS</th><th>Methods</th></tr><tr class="a"><td>com.adobe.ac.pmd.view.model.ResultsModel</td><td>47</td><td>12</td></tr><tr class="b"><td>com.adobe.ac.pmd.model.Violation</td><td>24</td><td>9</td></tr><tr class="a"><td>com.adobe.ac.pmd.view.model.UploadModel</td><td>51</td><td>8</td></tr><tr class="b"><td>com.adobe.ac.pmd.view.model.ViolationsModel</td><td>28</td><td>7</td></tr><tr class="a"><td>com.adobe.ac.pmd.model.CharacterPosition</td><td>10</td><td>3</td></tr></table><p><b>Averages.</b></p><table class="bodyTable"><tr class="b"><th>NCSS average</th><th>Classes average</th><th>Methods average</th></tr><tr class="a"><td>8.0625</td><td>16</td><td>3.125</td></tr></table></div><div class="section"><h2><a name="method">Methods</a></h2><p>[ <a href="#package">package</a> ] [ <a href="#object">object</a> ] [ <a href="#method">method</a> ] [ <a href="#explanation">explanation</a> ]</p><p><b>TOP 5 Methods containing the most NCSS.</b></p><p><table class="bodyTable"><tr class="b"><th>Methods</th><th>NCSS</th><th>CCN</th></tr><tr class="a"><td>com.adobe.ac.pmd.view.model.UploadModel::deserializeViolation</td><td>13</td><td>1</td></tr><tr class="b"><td>com.adobe.ac.pmd.view.model.ResultsModel::selectedGoupFieldIndices</td><td>11</td><td>4</td></tr><tr class="a"><td>com.adobe.ac.pmd.view.model.ViolationsModel::violations</td><td>11</td><td>5</td></tr><tr class="b"><td>com.adobe.ac.pmd.view.model.UploadModel::tryToLoadFromParameters</td><td>10</td><td>2</td></tr><tr class="a"><td>com.adobe.ac.pmd.model.File::shortPath</td><td>7</td><td>2</td></tr></table></p><p><b>Averages.</b></p><p><table class="bodyTable"><tr class="b"><th>Program NCSS</th><th>NCSS average</th><th>CCN average</th></tr><tr class="a"><td>129</td><td>2.58</td><td></td></tr></table></p></div><div class="section"><h2><a name="explanation">Explanations</a></h2><p>[ <a href="#package">package</a> ] [ <a href="#object">object</a> ] [ <a href="#method">method</a> ] [ <a href="#explanation">explanation</a> ]</p><p><b>Non Commenting Source Statements (NCSS)</b></p><p>Statements for FlexMetrics are not statements as specified in the ECMAScript 4 Language Specification but include all kinds of declarations too. Roughly spoken, NCSS is approximately equivalent to counting ';' and '{' characters in source files.</p><p>Not counted are empty statements, empty blocks or semicolons after closing brackets. Of course, comments don't get counted too. Closing brackets also never get counted, the same applies to blocks in general.</p><table class="bodyTable"><tr class="b"><th></th><th>Examples</th></tr><tr class="a"><td>Package declaration</td><td><tt>package com.adobe.ac {}</tt></td></tr><tr class="b"><td>Import declaration</td><td><tt>import com.adobe.ac.*;</tt></td></tr><tr class="a"><td>Class declaration</td><td><ul><li><tt>public class Foo {</tt></li><li><tt>public class Foo extends Bla {</tt></li></ul></td></tr><tr class="b"><td>Interface declaration</td><td><tt>public interface Able {</tt></td></tr><tr class="a"><td>Field declaration</td><td><ul><li><tt>var a : Number;</tt></li><li><tt>var a : Number = 1;</tt></li></ul></td></tr><tr class="b"><td>Method declaration</td><td><ul><li><tt>public function cry() : void{}</tt></li><li><tt>public function gib() : DeadResult {}</tt></li></ul></td></tr><tr class="a"><td>Constructor declaration</td><td><tt>public Foo() {</tt></td></tr><tr class="b"><td>Constructor invocation</td><td><ul><li><tt>super();</tt></li></ul></td></tr><tr class="a"><td>Statement declaration</td><td><ul><li><tt>i = 0;</tt></li><li><tt>if (ok)</tt></li><li><tt>if (exit) {</tt></li><li><tt>if (3 == 4);</tt></li><li><tt>if (4 == 4) { ;</tt></li><li><tt>} else {</tt></li></ul></td></tr></table>In some cases consecutive semicolons are illegal according to the JLS but FlexMetrics still tolerates them. Nevertheless they are never counted as two statements.<p><b>Cyclomatic Complexity Number (CCN)</b></p><p>CCN is also know as McCabe Metric. There exists a much hyped theory behind it based on graph theory, but it all comes down to simply counting 'if', 'for', 'while' statements etc. in a method. Whenever the control flow of a method splits, the &quot;CCN counter&quot; gets incremented by one.</p><p>Each method has a minimum value of 1 per default. For each of the following Java keywords/statements this value gets incremented by one:</p><ul><li><tt>if</tt></li><li><tt>for</tt></li><li><tt>while</tt></li><li><tt>case</tt></li><li><tt>catch</tt></li></ul>Also if the control flow of a method returns abortively the CCNvalue will be incremented by one:<ul><li><tt>if</tt></li><li><tt>for</tt></li></ul>An ordinary return at the end of method will not be counted.<p>Note that 'else', 'default', and 'finally' don't increment the CCN value any further. On the other hand, a simple method with a 'switch' statement and a huge block of 'case' statements can have a surprisingly high CCN value (still i